맨위로가기

Less (스타일시트 언어)

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

Less는 CSS를 확장하는 스타일시트 언어이다. 변수 정의, 믹스인, 중첩, 함수 및 연산 등의 기능을 제공하여 CSS 코드를 더욱 효율적으로 작성할 수 있도록 돕는다. Sass와 유사하게 CSS 전처리기로서, CSS를 프로그래밍 방식으로 작성할 수 있게 해준다. Less는 다양한 컴파일러, 편집기 및 플러그인을 통해 지원되며, 윈도우, macOS, 리눅스 등 다양한 플랫폼에서 사용 가능하다.

더 읽어볼만한 페이지

  • 스타일시트 언어 - CSS
    CSS는 마크업 언어로 작성된 문서의 스타일을 정의하는 스타일 시트 언어로서, 웹 페이지의 시각적 표현을 담당하며 디자인과 사용자 경험을 향상시키고, W3C에 의해 표준이 관리되며 다양한 프레임워크와 디자인 방법론을 가진다.
  • 스타일시트 언어 - XSL
    XSL은 XML 문서의 스타일 정의 및 변환에 사용되는 언어로, XSLT, XPath, XSL-FO 등의 사양으로 구성되어 XML 문서 변환, 탐색, 서식 있는 출력 생성 기능을 제공한다.
  • 자바스크립트 라이브러리 - 구글 웹 툴킷
    구글 웹 툴킷(GWT)은 자바 코드를 자바스크립트로 변환하여 웹 애플리케이션 개발을 지원하는 도구로, 개발자가 자바 언어로 Ajax 애플리케이션을 개발하고 GWT 컴파일러를 통해 최적화된 자바스크립트 파일로 변환할 수 있게 한다.
  • 자바스크립트 라이브러리 - AngularJS
    AngularJS는 동적 웹 애플리케이션 개발을 용이하게 하기 위해 설계된 오픈 소스 자바스크립트 프레임워크로, MVC 패턴 적용, 의존성 주입, HTML 확장 디렉티브 제공, 양방향 데이터 바인딩 등의 특징을 가지며, 장기 지원은 종료되었지만 웹 개발에 중요한 영향을 미쳤다.
  • 자유 라이브러리 - Tk (소프트웨어)
    Tk는 Tcl 스크립팅 언어의 크로스 플랫폼 GUI 툴킷으로, 다양한 플랫폼 이식과 여러 프로그래밍 언어 바인딩을 지원하며 사용자 정의 가능한 위젯들을 제공한다.
  • 자유 라이브러리 - SQLite
    SQLite는 D. 리처드 히프가 설계한 서버리스 구조의 임베디드 SQL 데이터베이스 엔진으로, 별도의 DBMS 없이 프로그램에 통합되어 작동하며 전체 데이터베이스를 단일 파일로 저장하는 특징이 있고, 다양한 운영체제와 환경에서 널리 사용된다.
Less (스타일시트 언어) - [IT 관련 정보]에 관한 문서
기본 정보
LESS 로고
LESS 로고
출시일2009년
설계자Alexis Sellier
개발자Alexis Sellier, Dmitry Fadeyev
프로그래밍 언어자바스크립트
최신 버전4.1.2
최신 버전 출시일2021년 10월 4일
자료형 체계동적
영향을 받은 언어CSS, Sass
영향을 준 언어Sass, Less 프레임워크, 부트스트랩 (v3)
운영 체제크로스 플랫폼
라이선스아파치 라이선스 2.0
웹사이트LESS 공식 웹사이트
파일 확장자.less

2. 기능

Less는 CSS 전처리기(preprocessor)로서, CSS의 기능을 확장하여 코드의 재사용성과 유지보수성을 높여준다. Less의 주요 기능은 다음과 같다.


  • 변수: 골뱅이표(@)를 사용하여 변수를 정의하고, 콜론(:)을 사용하여 값을 할당한다. 변수는 코드 내에서 반복되는 값을 쉽게 관리하고 수정할 수 있게 해준다.[23]
  • 믹스인 (Mixin): 믹스인은 클래스의 속성을 다른 클래스에 포함시켜 코드의 반복을 줄이고, 마치 함수처럼 인수를 받아 동적으로 스타일을 생성할 수 있게 한다. CSS는 믹스인을 지원하지 않기 때문에 Less의 유용한 기능 중 하나이다.[23]
  • 중첩 (Nesting): Less는 CSS 선택자를 중첩하여 코드의 가독성을 높이고, 상속 관계를 명확하게 표현할 수 있다.[21]
  • 함수 및 연산: Less는 덧셈, 뺄셈, 곱셈, 나눗셈 등의 연산을 지원하여 속성 간의 관계를 표현하고, 함수를 통해 값을 조작할 수 있다.[21]

2. 1. 변수

Less는 변수 정의를 허용한다. Less에서 변수는 골뱅이표(@)로 정의되며, 변수 할당은 콜론(:)을 통해 이루어진다.[23]

변환 중에 변수의 값들은 출력 CSS 문서에 삽입된다.

```less

@pale-green-color: #4D926F;

#header {

color: @pale-green-color;

}

h2 {

color: @pale-green-color;

}

```

위의 Less 코드는 다음의 CSS 코드로 컴파일된다.

```css

#header {

color: #4D926F;

}

h2 {

color: #4D926F;

}

2. 2. 믹스인 (Mixin)

믹스인(mixin)은 클래스 이름을 속성 중 하나로 포함시킴으로써 클래스의 모든 속성을 다른 클래스 안으로 포함시키는 것을 허용하며, 이로써 일종의 상수나 변수처럼 동작한다. 이들은 마치 함수처럼 동작하며 인수를 취한다. CSS 자체는 믹스인을 지원하지 않으므로, 반복되는 코드는 각 위치에 반복되어야 한다. 믹스인은 더 효율적이고 깨끗한 코드 반복을 허용하며 쉬운 코드 변경 또한 가능케 한다.[23]

```less

.rounded-corners (@radius: 5px 10px 8px 2px) {

  • webkit-border-radius: @radius;
  • moz-border-radius: @radius;

border-radius: @radius;

}

#header {

.rounded-corners;

}

#footer {

.rounded-corners(10px 25px 35px 0px);

}

```

위의 Less 코드는 다음의 CSS 코드로 컴파일된다:

```css

#header {

  • webkit-border-radius: 5px 10px 8px 2px;
  • moz-border-radius: 5px 10px 8px 2px;

border-radius: 5px 10px 8px 2px;

}

#footer {

  • webkit-border-radius: 10px 25px 35px 0px;
  • moz-border-radius: 10px 25px 35px 0px;

border-radius: 10px 25px 35px 0px;

}

```

Less는 파라메트릭 믹스인(parametric mixin)이라는 특별한 타입의 룰셋(ruleset)이 있어서 클래스처럼 믹스가 가능하지만 파라미터를 수락한다.

```less

#header {

h1 {

font-size: 26px;

font-weight: bold;

}

p {

font-size: 16px;

a {

text-decoration: none;

color: red;

&:hover {

border-width: 1px;

color: #fff;

}

}

}

}

```

위의 Less 코드는 다음의 CSS 코드로 컴파일된다:

```css

#header h1 {

font-size: 26px;

font-weight: bold;

}

#header p {

font-size: 16px;

}

#header p a {

text-decoration: none;

color: red;

}

#header p a:hover {

border-width: 1px;

color: #fff;

}

```[21]

2. 3. 중첩 (Nesting)

CSS는 논리적인 중첩을 지원하지만, 코드 블록 자체가 중첩되어 있지는 않다. LESS를 사용하면 다른 선택자 내부에 중첩이 가능하며, 명확한 상속과 간소화에 도움이 된다.[21]

다음은 LESS 코드 예시이다.

```less

#header {

h1 {

font-size: 26px;

font-weight: bold;

}

p {

font-size: 12px;

a {

text-decoration: none;

&:hover {

border-width: 1px;

}

}

}

}

```

위 코드는 다음과 같이 CSS로 컴파일된다.

```css

#header h1 {

font-size: 26px;

font-weight: bold;

}

#header p {

font-size: 12px;

}

#header p a {

text-decoration: none;

}

#header p a:hover {

border-width: 1px;

}

2. 4. 함수 및 연산

Less는 속성 값과 색상에 대한 덧셈, 뺄셈, 나눗셈, 곱셈 등의 연산을 지원하여 속성 간의 복잡한 관계를 표현할 수 있다. 또한, 함수는 자바스크립트 코드와 일대일로 매핑되어 값을 조작할 수 있게 한다.[21]

```less

@the-border: 1px;

@base-color: #111;

@red: #842210;

#header {

color: @base-color * 3;

border-left: @the-border;

border-right: @the-border * 2;

}

#footer {

color: @base-color + #003300;

border-color: desaturate(@red, 10%);

}

```

위 Less 코드는 다음과 같이 CSS컴파일된다.

```css

#header {

color: #333;

border-left: 1px;

border-right: 2px;

}

#footer {

color: #114411;

border-color: #7d2717;

}

3. Sass와의 비교

Sass는 Less와 함께 널리 사용되는 CSS 전처리기 중 하나로, 프로그래밍 구문을 통해 CSS를 효율적으로 작성하도록 돕는다.[4] Less는 Sass에서 영감을 받아 개발되었다.[5][2]

Sass는 초기에 CSS를 간소화하고 확장하는 데 중점을 두어 중괄호({})와 같은 요소를 제거했다. 반면 Less는 CSS와의 호환성을 최대한 유지하도록 설계되어, 기존 CSS 코드를 Less에서도 그대로 사용할 수 있었다.[6] 이후 Sass는 SCSS(Sassy CSS)라는 새로운 구문을 도입하여 CSS와 유사한 형태로 작성할 수 있게 되었다.[19] Less는 버전 1.4부터 네스팅(nesting)과 `&:extends`, `@extends` 의사(pseudo) 선택자를 통한 상속을 지원한다.

더 자세한 구문 비교는 여기에서 확인할 수 있다.

4. Less 소프트웨어

Less 코드를 CSS로 컴파일하는 다양한 도구들이 존재한다. 윈도우, 맥 OS X, 리눅스 등 다양한 플랫폼에서 사용할 수 있는 컴파일러, 편집기, 플러그인 등이 있다.

이름설명소프트웨어 라이선스플랫폼기능
LessEngineLess 컴파일러무료OpenCart 플러그인컴파일러
SimpLESSLess 컴파일러무료 (명시적인 라이선스 없음)[10]윈도우, Mac OS X, 리눅스컴파일러
ChirpyLess 컴파일러Ms-PL[11]Visual Studio 플러그인컴파일러
Mindscape Web WorkbenchLess 및 Sass용 구문 강조 및 IntelliSense독점Visual Studio 플러그인컴파일러, 구문 강조
Eclipse Plugin for LessEclipse 플러그인EPL 1.0[12]Eclipse 플러그인구문 강조, 콘텐츠 지원, 컴파일러
mod_less즉석에서 Less를 컴파일하는 Apache2 모듈오픈 소스리눅스컴파일러
grunt-contrib-lessLess를 CSS로 변환하는 Node.js Grunt 작업MIT[13]Node.js컴파일러
clessc순수 C++ 컴파일러MIT[15]최소 윈도우, 리눅스, MacOS컴파일러
Less WebCompiler웹 기반 컴파일러MIT[16]최소 윈도우, 리눅스, MacOS컴파일러, 구문 강조, 최소화 도구


4. 1. 주요 Less 소프트웨어 목록

이름설명소프트웨어 라이선스플랫폼기능
WinLess윈도우용 GUI Less 컴파일러아파치 2.0[7]윈도우컴파일러
CrunchLess 편집기 및 컴파일러 (Adobe AIR 필요)GPL[8]윈도우, Mac OS X컴파일러, 편집기
less.js-windows윈도우용 명령줄 유틸리티MIT 라이선스[9]윈도우컴파일러
less.appMac OS X용 Less 컴파일러독점Mac OS X컴파일러
CodeKitMac OS X용 Less 컴파일러독점Mac OS X컴파일러
Web EssentialsLess 및 Sass를 지원하는 Visual Studio 확장아파치 2.0 [14]윈도우구문 강조, 콘텐츠 지원, 컴파일러


참조

[1] 웹사이트 Getting started {{!}} Less.js http://lesscss.org/ 2021-03-19
[2] 웹사이트 Sass and Less : Nex3 http://nex-3.com/pos[...] 2009-06-17
[3] 웹사이트 css - Is there a SASS.js? Something like LESS.js? https://stackoverflo[...] 2010-12-14
[4] 웹사이트 What's Wrong With CSS https://blog.codingh[...] 2022-12-03
[5] 웹사이트 About {{!}} Less.js http://lesscss.org/a[...] 2021-03-19
[6] 웹사이트 sass_and_less_compared.markdown https://gist.github.[...] 2021-03-19
[7] 웹사이트 License Information · Issue #55 · marklagendijk/WinLess https://github.com/m[...] 2021-03-19
[8] 웹사이트 Crunch/LICENSE.txt at master · matthew-dean/Crunch https://github.com/m[...] 2021-03-19
[9] 웹사이트 less.js-windows/LICENSE at master · duncansmart/less.js-windows https://github.com/d[...] 2021-03-19
[10] 웹사이트 SimpLESS/LICENSE.txt at master · Paratron/SimpLESS https://github.com/P[...] 2021-03-19
[11] 웹사이트 Chirpy - VS Add In For Handling Js, Css, DotLess, and T4 Files - CodePlex Archive https://archive.code[...] 2021-03-19
[12] 웹사이트 Eclipse plugin for LESS http://www.normalesu[...] 2021-03-19
[13] 웹사이트 grunt-contrib-less/LICENSE-MIT at master · gruntjs/grunt-contrib-less https://github.com/g[...] 2021-03-19
[14] 웹사이트 WebEssentials2013/LICENSE.txt at master · madskristensen/WebEssentials2013 https://github.com/m[...] 2021-03-19
[15] 웹사이트 clessc/LICENSE at master · BramvdKroef/clessc https://github.com/B[...] 2021-03-19
[16] 웹사이트 snout.less/LICENSE.md at master · pytesNET/snout.less https://github.com/p[...] 2021-03-19
[17] 웹사이트 CHANGELOG https://github.com/l[...] 2022-06-03
[18] 웹사이트 About LESS http://lesscss.org/a[...]
[19] 웹사이트 Sass and Less http://nex-3.com/pos[...]
[20] 웹사이트 http://stackoverflow[...]
[21] 웹사이트 Official LESS website http://lesscss.org/
[22] 웹사이트 What's Wrong With CSS http://www.codinghor[...]
[23] 웹사이트 Official Less website http://lesscss.org/
[24] 웹사이트 Sass and Less http://nex-3.com/pos[...]
[25] 웹인용 css - Is there a SASS.js? Something like LESS.js? https://stackoverflo[...]



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com